package object;
/** 包装类的演示 */
public class IntegerDemo {
    public static void main(String[] args) {
        //演示包装类的定义：
        Integer i1= new Integer(500);
        Integer i2= new Integer(500);
        System.out.println(i1==i2);//false,==比较的是地址
        System.out.println(i1.equals(i2));//true,包装类重写equals（）比较值了

        //valueOf()方法会复用1个字节（-128到127）范围内的数据，建议使用valueOf（）
        Integer i3 = Integer.valueOf(5);
        Integer i4 = Integer.valueOf(5);
        System.out.println(i3==i4);//true
        System.out.println(i3.equals(i4));//true

        //包装类转换基本类型
        int i = i4.intValue();
        System.out.println(i);

        Double o1 = Double.valueOf(3.14159);
        double o = o1.doubleValue();
        System.out.println(o);

        //触发了自动装箱特性，会被编译为： Integer b = Integer.valueOf(5);
        Integer b =5;//基本类型到包装类-----装箱

        //触发了自动拆箱特性，会被编译为：int j = i.intValue();
        int j =i;//包装类到基本类型------拆箱

        //演示包装类的常用操作：
        //1）可以通过包装类来获取基本类型的取值范围：
        int max = Integer.MAX_VALUE;//获取int最大值
        int min = Integer.MIN_VALUE;//获取int最小值
        System.out.println("int的最大值为："+max+",最小值为："+min);

        long max1 = Long.MAX_VALUE;//获取long最大值
        long min1 = Long.MIN_VALUE;//获取long最小值
        System.out.println("最大值为："+max1+",最小值为："+min1);

        //2）包装类可以将字符串转换为对应得基本类型
        String s1 = "39";
        int age = Integer.parseInt(s1);//将字符串s1转换为int类型并赋值给age
        System.out.println(age);

        String s2 = "123.456";
        double price = Double.parseDouble(s2);//将字符串s2转换为double类并赋值给price
        System.out.println(price);

        String a = "51";
        int aab = Integer.parseInt(a);
        System.out.println(aab);

        String b1 = "159.123";
        double bbc = Double.parseDouble(b1);
        System.out.println(bbc);






    }
}
